package datos;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import negocio.Ciudad;
import negocio.Operador;
import combinaciones.Problema;

public class ClienteDB {

    public ArrayList listarClientesPotenciales(int cantidad) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="{ ? = call getclientespotenciales('"+cantidad+"') }";
        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Operador miCliente=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
        miCliente = new Operador();
        miCliente.setCedula(resultado.getString(1));
        miCliente.setNombre(resultado.getString(2));
        miCliente.setApellido(resultado.getString(3));
        todos.add(miCliente);
        }
        db.cerrarConexion();
return todos;
}
    
    public boolean grabar(Operador miCliente, Ciudad miCiudad) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "insert into operador values('" + miCliente.getCedula()+ "','" + miCliente.getNombre()+ "','" + miCliente.getApellido()+ "','" + miCliente.getDireccion()+ "','" + miCiudad.getIdciudad()  + "')";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
    }

    public int modificar(Operador miCliente, Ciudad miCiudad) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="update operador set nombre='" + miCliente.getNombre() + "',apellido='" + miCliente.getApellido() + "',idciudad='" + miCiudad.getIdciudad()+  "' where cedula='" + miCliente.getCedula() + "'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }
    public int eliminar(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="delete from operador where cedula='" + cedula + "'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }
    
    public Ciudad buscarCiudad(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from operador where cedula ='" + cedula + "'";
        ResultSet resultado = db.seleccion(query);
        Ciudad miCiudad=null;
        if (resultado!=null) {
            resultado.next();
            miCiudad = new Ciudad();
            miCiudad.setIdciudad(resultado.getInt("idciudad"));
        }
        db.cerrarConexion();
        return miCiudad;
    }

       
    public Operador buscar(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from operador where cedula ='" + cedula + "'";
        ResultSet resultado = db.seleccion(query);
        Operador miCliente=null;
        if (resultado!=null) {
            resultado.next();
            miCliente = new Operador();
            miCliente.setCedula(resultado.getString("Cedula"));
            miCliente.setNombre(resultado.getString("Nombre"));
            miCliente.setApellido(resultado.getString("Apellido"));
            miCliente.setDireccion(resultado.getString("Contrasenia"));
        }
        db.cerrarConexion();
        return miCliente;
    }

    public ArrayList listar() throws SQLException {
       OperacionesBase db = new OperacionesBase();
        String query="select * from operador";
        ResultSet resultado = db.seleccion(query);
        Operador miCliente=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            miCliente = new Operador();
            miCliente.setCedula(resultado.getString("Cedula"));
            miCliente.setNombre(resultado.getString("Nombre"));
            miCliente.setApellido(resultado.getString("Apellido"));
            miCliente.setDireccion(resultado.getString("Contrasenia"));
            
            todos.add(miCliente);
        }
        db.cerrarConexion();
        return todos;
    }
     
}
